home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 September / PCWorld_2006-09_cd.bin / v cisle / hexer / mpth_17.exe / {app} / scripts / copytexttoclipboard.mps < prev    next >
Text File  |  2006-05-23  |  1KB  |  57 lines

  1. include '*.lng'
  2.  
  3. = copy the current selection (or whole file, if nothing selected) to clipboard in
  4. = raw data format (as text)
  5. = markus stephany, may 23, 2006
  6.  
  7. option opt5, 'copytexttoclipboard.ico':= set an icon for this script
  8.  
  9.  
  10. = check if a file is currently open
  11. IF (CURRENTFILE=="")
  12.   ERROR __ERR1__
  13. ENDIF
  14.  
  15. = open current file
  16. VAR curfile FILE
  17. curfile = FILEOPEN("::current", "r")
  18. IF (FILEGETPROP(curfile, "Size") == 0)
  19.   FILECLOSE curfile
  20.   ERROR __ERR2__
  21. ENDIF
  22.  
  23. = open clipboard
  24. VAR clip FILE
  25. clip = FILEOPEN("::clipboard", "c")
  26.  
  27. = get selection/whole file margins
  28. VAR start LONGWORD count LONGWORD 
  29. count = FILEGETPROP(curfile, "SelCount")
  30. IF (count)
  31.   start = FILEGETPROP(curfile, "SelStart")
  32. ELSE
  33.   start = 0
  34.   count = FILEGETPROP(curfile, "Size")
  35. ENDIF
  36. FILESEEK clip count
  37. FILESEEK clip 0
  38.  
  39. = copy the part/file to the clipboard as CF_TEXT
  40. VAR cnt LONGWORD transfer TEXT rem DWORD blocks DWORD
  41. rem = count MOD 65536
  42. blocks = count / 65536
  43. FILESEEK curfile start
  44. WHILE (blocks > 0)
  45.   INC cnt, 65536
  46.   INC blocks, -1
  47.   SHOWPROGRESS count cnt
  48.   FILEREAD curfile transfer 65536
  49.   FILEWRITE clip transfer
  50. ENDWHILE
  51. FILEREAD curfile transfer rem
  52. FILEWRITE clip transfer
  53.  
  54. FILECLOSE curfile
  55. FILECLOSE clip
  56.  
  57.